A storage system typically includes a host and one or more storage devices each of which may include one or more nonvolatile memory chips, such as NAND flash memory chips. In order to determine a physical location at which the data are stored using an identifier for the data or a logical address of the data, mapping data is stored in each of the storage devices or in the host, and the physical location of the data is determined by referring to the mapping data. Specifically, in a storage system of one type, such mapping data are stored in each of the storage devices, and the location of data communicated between the host and the storage devices is designated by a logical address. In a storage system of another type, the mapping data are stored in the host, and the location of data communicated between the host and the storage devices is the physical location of the data, e.g., designated by physical address of nonvolatile memory chips.
When data are written in a storage device that includes nonvolatile memory chips, it usually takes a certain amount of time until the storage device becomes ready for reading the data. This is because it takes a certain amount of time until electric charges are stably held in memory cells of the nonvolatile memory chip. For that reason, when the host issues a read command to read the data immediately after the data are written, the data may not be properly read from the nonvolatile memory chip. Such an issue is particularly significant when the location of data communicated between the host and the storage device is a physical location, because the storage device will need to read data from the same physical location. On the other hand, when the location of data communicated between the host and the storage device is an identifier for the data or a logical address, the storage device may be able to read the requested data from a location different from the physical location corresponding to the identifier or the logical address, e.g., a buffer configured in volatile memory in which the incoming write data are initially stored.